class Solution:
    def wiggleMaxLength(self, nums: List[int]) -> int:
        if not nums:
            return 0
        if len(nums)==1:
            return 1
        maxlen=0
        deleting=False
        offset=0
        while offset<len(nums)-2 and nums[offset+1]-nums[offset]==0: 
            offset+=1
        prev=nums[offset]-nums[offset+1]
        index=offset
        for i in range(offset,len(nums)-1):
            if not deleting:
                index=i
            if (nums[i+1]-nums[index])*prev<0:
                prev=nums[i+1]-nums[index]
                maxlen+=1
                deleting=False
            else:
                index=i+1
                deleting=True
        return maxlen+1

'''
执行用时：
32 ms
, 在所有 Python3 提交中击败了
98.85%
的用户
内存消耗：
14.8 MB
, 在所有 Python3 提交中击败了
5.16%
的用户
'''